package template;

/**
 * @Author: Doream
 * @Date: 2022/1/28 23:10
 */
// 炒菜模板类
public abstract class AbstratClass {
    public String a = "father";

    // 模板方法定义，用final固定不能随意修改
    public final void cookProcess(){
        pourOil();
        heatOil();
        pourVegetable();
        pourSauce();
        fry();
    }

    // 第一步倒油，这是一个通用步骤
    private void pourOil(){
        System.out.println("倒油");
    }
    // 第二步热油，这是一个通用步骤
    private void heatOil(){
        System.out.println("正在热油");
    }
    //第三步放菜
    protected abstract void pourVegetable();
    // 第四步加调料
    protected abstract void pourSauce();

    // 第五步翻炒，这是一个通用步骤
    private void fry(){
        System.out.println("炒菜中....炒熟了");
    }
}
